package com.ny.mapper;

import com.ny.entity.Devices;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface DeviceMapper extends MongoRepository<Devices, String> {

    /**
     * 查询所有设备信息
     * @return 设备列表
     */
    List<Devices> findAll();

    /**
     * 根据设备ID查询设备（使用@Query注解指定查询条件）
     * @param deviceId 设备ID
     * @return 设备信息
     */
    @Query("{'device_id': ?0}")
    Devices findByDeviceId(int deviceId);

    /**
     * 根据设备名称模糊查询
     * @param name 设备名称关键字
     * @return 匹配的设备列表
     */
    @Query("{'name': {$regex: ?0, $options: 'i'}}") // 'i'表示忽略大小写
    List<Devices> findByNameLike(String name);

    /**
     * 根据设备ID删除设备
     * @param deviceId 设备ID
     */
    @Query(value = "{'device_id': ?0}", delete = true)
    void deleteByDeviceId(int deviceId);
}